home *** CD-ROM | disk | FTP | other *** search
/ Interactive Web Graphics with Shout 3D / Interactive Web Graphics With Shout 3D.iso / mac / Shout3Ddemo / S3D_2E1.exe / Shout3d_runtime / codebase / applets / JavaScriptSceneChangeApplet.java < prev    next >
Text File  |  2000-10-16  |  2KB  |  68 lines

  1. /**    
  2.     Company:        Eyematic Interfaces
  3.     Project:        Shout3D 2.0 Sample Code
  4.     Class:            Viewer
  5.     Date:            April 26, 1999
  6.     Description:    Class for Viewer
  7.     (C) Copyright Eyematic Interfaces, Inc. - 1997-2000 - All rights reserved
  8.  */
  9. package applets;
  10.  
  11. import java.applet.*;
  12. import java.awt.*;
  13. import java.awt.image.*;
  14. import java.io.*;
  15. import java.util.Date;
  16. import java.net.URL;
  17. import shout3d.core.*;
  18. import shout3d.*;
  19.  
  20. /**
  21.  * Shout3D viewer 
  22.  * 
  23.  * @author Jim Stewartson
  24.  * @author Paul Isaacs
  25.  * @author Dave Westwood
  26.  */
  27.  
  28. public class JavaScriptSceneChangeApplet  extends Shout3DApplet implements RenderObserver{
  29.  
  30.     protected void finalize() throws Throwable { 
  31.         if (isRenderObserving)
  32.             getRenderer().removeRenderObserver(this);
  33.         super.finalize();
  34.     }
  35.     
  36.     public void initShout3DPanel(){
  37.         panel = new ExaminePanel(this);
  38.     }
  39.  
  40.     boolean isRenderObserving = false;
  41.     boolean waitingToChangeScenes = false;
  42.     String    nextSceneUrl;
  43.     
  44.     public void changeToScene(String newScene){
  45.         if (isRenderObserving == false){
  46.             getRenderer().addRenderObserver(this, null);
  47.             isRenderObserving = true;
  48.         }
  49.         waitingToChangeScenes = true;
  50.         nextSceneUrl = newScene;
  51.     }
  52.     
  53.     public void onPreRender(Renderer r, Object userData){
  54.     }
  55.     public void onPostRender(Renderer r, Object userData){
  56.         if (waitingToChangeScenes){
  57.             String[] urls = { nextSceneUrl };
  58.             setSceneFromURL(urls);
  59.             waitingToChangeScenes = false;
  60.         }
  61.     }
  62.     
  63.     public void addChild( Group parent, Node child ){
  64.         Node[] newKids = { child };
  65.         parent.addChildren(newKids);
  66.     }
  67. }
  68.